home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2007 December / PCWKCD1207B.iso / Blogowanie poza sfera / Flock 1.0 beta / flock-1.0RC3.en-US.win32.exe / flock / components / flockLoggingConsoleWriter.js < prev    next >
Text File  |  2007-10-18  |  4KB  |  115 lines

  1. //
  2. // BEGIN FLOCK GPL
  3. // 
  4. // Copyright Flock Inc. 2005-2007
  5. // http://flock.com
  6. // 
  7. // This file may be used under the terms of of the
  8. // GNU General Public License Version 2 or later (the "GPL"),
  9. // http://www.gnu.org/licenses/gpl.html
  10. // 
  11. // Software distributed under the License is distributed on an "AS IS" basis,
  12. // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  13. // for the specific language governing rights and limitations under the
  14. // License.
  15. // 
  16. // END FLOCK GPL
  17. //
  18.  
  19. const CC = Components.classes;
  20. const CI = Components.interfaces;
  21. const CR = Components.results;
  22.  
  23. Components.utils.import("resource:///modules/FlockXPCOMUtils.jsm");
  24. FlockXPCOMUtils.debug = false;
  25.  
  26. const MODULE_NAME = "Flock Logging Console Writer";
  27.  
  28. const CLASS_NAME = "Flock Logging Console Writer";
  29. const CLASS_ID = Components.ID("{442BDAE4-4FDC-4819-8748-C8659E415410}");
  30. const CONTRACT_ID = "@flock.com/logging-console-writer;1";
  31.  
  32. /**************************************************************************
  33.  * Component: Flock Logging Console Writer
  34.  **************************************************************************/
  35.  
  36. // Constructor.
  37. function flockLoggingConsoleWriter() {
  38.   this._converter = CC["@mozilla.org/intl/scriptableunicodeconverter"]
  39.                     .createInstance(CI.nsIScriptableUnicodeConverter);
  40.   this._converter.charset = "UTF-8";
  41. }
  42.  
  43. /**************************************************************************
  44.  * Flock Logging Console Writer: XPCOM Component Creation
  45.  **************************************************************************/
  46.  
  47. flockLoggingConsoleWriter.prototype = new FlockXPCOMUtils.genericComponent(
  48.   CLASS_NAME,
  49.   CLASS_ID,
  50.   CONTRACT_ID,
  51.   flockLoggingConsoleWriter,
  52.   CI.nsIClassInfo.SINGLETON,
  53.   [CI.flockILoggingObserver]
  54. );
  55.  
  56. // FlockXPCOMUtils.genericModule() categories
  57. flockLoggingConsoleWriter.prototype._xpcom_categories = [
  58.   { category: "flockILoggingObserver" }
  59. ];
  60.  
  61. /**************************************************************************
  62.  * Flock Logging Console Writer: Private Data and Functions
  63.  **************************************************************************/
  64.  
  65. // Member variables.
  66. flockLoggingConsoleWriter.prototype._converter = null;
  67.  
  68. flockLoggingConsoleWriter.prototype._pad =
  69. function LogConsWriter__pad(aNumber, aPlaces) {
  70.   var numberString = aNumber + "";
  71.   while (numberString.length < aPlaces) {
  72.     numberString = "0" + numberString;
  73.   }
  74.   return numberString;
  75. }
  76.  
  77. /**************************************************************************
  78.  * Flock Logging Console Writer: flockILoggingService Implementation
  79.  **************************************************************************/
  80.  
  81. flockLoggingConsoleWriter.prototype.emit =
  82. function LogConsWriter_emit(aDate, aLevel, aContext, aMessage) {
  83.  
  84.   var levels = ["all", "debug", "info", "warn", "error", "fatal"];
  85.   var date = new Date(aDate);
  86.   var dateString = date.toLocaleFormat("%H:%M:%S.")
  87.                  + this._pad(date.getMilliseconds(), 3);
  88.   var content = "[" + dateString + " flock:" + aContext
  89.               + ":" + levels[aLevel] + "] " + aMessage
  90.               + "\n";
  91.   content = this._converter.ConvertFromUnicode(content)
  92.           + this._converter.Finish();
  93.   dump(content);
  94. }
  95.  
  96. /**************************************************************************
  97.  * END Flock Logging Console Writer
  98.  **************************************************************************/
  99.  
  100.  
  101. /**************************************************************************
  102.  * XPCOM Support - Module Construction
  103.  **************************************************************************/
  104.  
  105. // Create array of components.
  106. var gComponentsArray = [flockLoggingConsoleWriter];
  107.  
  108. // Generate a module for XPCOM to find.
  109. var NSGetModule = FlockXPCOMUtils.generateNSGetModule(MODULE_NAME,
  110.                                                       gComponentsArray);
  111.  
  112. /**************************************************************************
  113.  * END XPCOM Support
  114.  **************************************************************************/
  115.